home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 3: The Continuation / 17-Bit_The_Continuation_Disc.iso / amigan / amigan 7 / zoo / zoo.doc < prev    next >
Text File  |  1994-01-27  |  35KB  |  785 lines

  1.                                     Zoo
  2.  
  3.                             A Fast File Archiver
  4.                Version 1.10 - 24 August 1986
  5.  
  6.                                      by
  7.  
  8.                                 Rahul  Dhesi
  9.  
  10.  
  11.                                 INTRODUCTION
  12.  
  13. Zoo is a utility for creating and maintaining libraries or archives of files
  14. in compressed form.  It requires a computer system with MS-DOS version 2.00
  15. or greater.  IBM compatibility is not a requirement.
  16.  
  17. Zoo is a 29 kilobyte executable file.  It can extract archived files in
  18. about 80 kilobytes of available memory, and can function fully in about 110
  19. kilobytes of available memory.
  20.  
  21. A companion program, Ooz, is also provided.  All that Ooz can do is extract
  22. files from Zoo archives, but it occupies less disk space (about 11 kilo-
  23. bytes) and needs less available memory (about 60 kilobytes).
  24.  
  25. Also provided is AtoZ, a batch program that will convert a subdirectory full
  26. of files in other formats (especially *.LBR or *.ARC) to Zoo archives.
  27.  
  28. Versions 1.x of Zoo, Ooz and AtoZ are in the public domain.  This means that
  29. you can freely use them, make copies, give them away, and even sell them.
  30. The source code is not being distributed, but version 2.00 of Zoo, when it
  31. appears, will be accompanied by generic source code in C.
  32.  
  33.  
  34.                                  DISCLAIMER
  35.  
  36. Zoo, Ooz, and Atoz are provided to you on an "as is", "you owe me nothing, I
  37. owe you nothing" basis.  If this warranty gives you any specific legal
  38. rights, I would like to know what they are, especially if they vary from
  39. state to state.
  40.  
  41.  
  42.                               COMMAND SUMMARY
  43.  
  44. Zoo has two types of commands:  Expert commands, which consist of one com-
  45. mand letter followed by zero or more modifier characters, and Novice com-
  46. mands, which consist of a hyphen ("-") followed by a command word that may
  47. be abbreviated.  Novice commands let you begin using Zoo quickly.  Unlike
  48. Expert commands, which are case-sensitive, Novice commands can be given in
  49. any combination of upper- and lowercase characters.
  50.  
  51. Expert commands are cryptic but offer you many more flexible options.  Start
  52. with the Novice commands and switch to using the Expert commands as soon as
  53. you can.
  54.  
  55.  
  56. 1.   Zoo Novice Command Format:
  57.  
  58.      ZOO cmd archive[.ZOO] [file] ...
  59.  
  60. The "archive" is the filename of the archive you want to use, and the
  61. program will assume an extension of ".ZOO" if you do not supply one.  The
  62. "file" is any filespec.
  63.  
  64. Both the "archive" and the "file" names may be pathnames.  Pathnames may
  65. contain both "/" and "\" characters.  The "file" name (but not the "archive"
  66. name) may also contain the standard DOS-style wildcard characters "*" and
  67. "?".  The "..." means that several filespecs may be given, separated by
  68. spaces.
  69.  
  70. A filespec ending with "/" or "\" is assumed to refer to all files in that
  71. directory.
  72.  
  73. Each Novice command works in two stages.  First, the command does its inten-
  74. ded work.  Then, if the result was that one or more files were deleted in
  75. the specified archive, the archive is packed to recover space.
  76.  
  77. If packing occurs, an unpacked backup copy of the archive is always left
  78. behind, with an extension of ".bak".  The packed archive always appears in
  79. the current directory, even if the original archive was on a different disk.
  80. This is intended to allow you to economize on disk space by simply using two
  81. disks if there is not enough space on a single disk to hold both the archive
  82. and its backup copy.
  83.  
  84. Novice                                                     Equivalent
  85. Command       Description                                  Expert Command
  86. -------       -----------                                  --------------
  87. -add          add files to archive                           aP
  88. -extract      extract files from archive                     x
  89. -move         move files to archive                          aMP
  90. -test         test archive integrity                         xNd
  91. -print        extract files and send to standard output      xp
  92. -delete       delete files from archive                      DP
  93. -list         list information about archived files          l
  94. -update       update archive by adding new or newer files    aunP
  95. -freshen      freshen archive by adding newer files          auP
  96. -comment      allows user to attach comments to files        c
  97.  
  98. Novice commands may be abbreviated as much as you wish, up to a minimum of a
  99. hyphen ("-") followed by at least one command character.  For example, the
  100. novice command "-extract" may be abbreviated to "-ext", "-ex", or "-e".
  101. Novice commands are described in more detail later.
  102.  
  103.  
  104. 2.   Zoo Expert Command Format:
  105.  
  106.      ZOO {acDehlPTuUvx}[dEfnMNoOpPquv1] archive[.ZOO] [file] ...
  107.  
  108. The characters enclosed within {} are commands.  Choose any one of these.
  109. The characters enclosed within [] just to the right of the {} are modifiers
  110. and zero or more of these may immediately follow the command character.  All
  111. combinations of command and modifier characters may not be valid.
  112.  
  113. In general, [] encloses something that may (sometimes) be omitted and {}
  114. encloses a set of items from which exactly one must be selected.  The
  115. archive and file names are as described for Novice commands above.  The
  116. archive and file names may be in any combination of upper- and lowercase
  117. characters, but the command and modifier characters are case-sensitive.
  118.  
  119. Invoking Zoo as "zoo h" will give a help screen.  Zoo Expert commands are
  120. described in detail later.
  121.  
  122.  
  123. 3.   Ooz Command Format
  124.  
  125. The Ooz command format is as follows:
  126.  
  127.      OOZ archive[.ZOO] [file] ...
  128.  
  129. Ooz is trivial to use;  just give it the name of the archive and it will
  130. extract all files from it, or specify which files you want to extract and
  131. only those will be extracted.  All extracted files go into the current
  132. directory.
  133.  
  134.  
  135.                               NOVICE COMMANDS
  136.  
  137.  
  138. 1.   Adding Files to an Archive
  139.  
  140. Format:  ZOO -add archive[.ZOO] file ...
  141.  
  142.      The specified files are added to the archive.  If all specified files
  143.      were added without any error, and if this resulted in deletion of a
  144.      file that was already in the archive, the archive is packed.  If
  145.      packing of the archive occurs, the unpacked archive is renamed to have
  146.      an extension of ".bak" and the packed archive always appears in the
  147.      current directory on the current disk.
  148.  
  149.      For example, the command "zoo -add qmodem *.com *.00? \doc\q*.doc"
  150.      would add the following files to archive "qmodem.zoo":  all files of
  151.      the form *.com and *.00? in the current directory, and all files of the
  152.      form q*.doc in the \doc subdirectory.
  153.  
  154.      The archive can be in a different directory or on a different disk.
  155.      Thus "zoo -add c:\scandals\misc \fortran\ \cobol\*.doc" adds files to
  156.      the archive "misc.zoo" in the directory "c:\scandals".  The files added
  157.      are:  all files in the directory "\fortran" and all *.doc files in the
  158.      directory "\cobol".
  159.  
  160.      If the filespecs given match duplicate filenames, each matching
  161.      filename is used only once.  This is true even if the duplicate
  162.      filenames refer to different files in different directories.
  163.  
  164.      Zoo will not add an archive to itself, nor add the archive's backup to
  165.      itself, nor add the temporary file {zoo}.@@@ to an archive, nor add any
  166.      other file that has the same name as these.
  167.  
  168.  
  169.  
  170. 3.   Moving Files to an Archive
  171.  
  172. Format:  ZOO -move archive[.ZOO] file ...
  173.  
  174.      -Move works just like -add, except that after all files have been
  175.      added, if no error occurred, the added files are deleted from disk.
  176.  
  177.  
  178. 4.   Testing an Archive
  179.  
  180. Format:  ZOO -test archive[.ZOO]
  181.  
  182.      This is equivalent to the -extract command, except that extracted files
  183.      are not saved.  If no CRC error or other error occurs during execution
  184.      of the -test command, this indicates with a high degree of confidence
  185.      that the archive is not corrupted.
  186.  
  187.  
  188. 5.   Printing Files from an Archive
  189.  
  190. Format:  ZOO -print archive[.ZOO] [file] ...
  191.  
  192.      This option extracts specified files from the archive and sends the
  193.      extracted data to standard output, which is normally the screen.  The
  194.      output may be directed to a printer or a disk file using DOS's redirec-
  195.      tion character ">".
  196.  
  197.      Zoo precedes the data of each extracted file by a brief header
  198.      displaying the name of the file.
  199.  
  200.      Error messages are piped to standard output as well.  However, if a bad
  201.      CRC is detected, the bad CRC message is sent both to the screen and to
  202.      the standard output.
  203.  
  204.  
  205. 6.   Deleting Files in an Archive
  206.  
  207. Format:  ZOO -delete archive[.ZOO] file ...
  208.  
  209.      The specified files are deleted from the archive, and then the archive
  210.      is packed to recover space that was occupied by the deleted files.
  211.  
  212.      As a safety feature, if the user deletes all files in an archive, no
  213.      packing of the archive is done and the deleted files may be recovered
  214.      with the Expert command U (undelete).  To delete an archive entirely,
  215.      use DOS's "del" or "erase" command.
  216.  
  217.  
  218. 7.   Listing Files in an Archive
  219.  
  220. Format:  ZOO -list archive[.ZOO] [file] ...
  221.  
  222.      This gives a list of the specified files along with information about
  223.      each file's original size, size as stored in the archive, compression
  224.      factor, and date.  If no files are specified, all files in the archive
  225.      are listed.
  226.  
  227.      If a file would need to be extracted with a version of Zoo higher than
  228.      the current version, Zoo displays the minimum version number needed.
  229.  
  230.      A summary line displays a count of files listed, the total of all
  231.      original sizes and current sizes, and a net compression factor.  The
  232.      actual size of an archive is always somewhat greater than the total of
  233.      the current sizes of files in it because of the directory information
  234.      that is also kept in the archive.
  235.  
  236.  
  237. 8.   Updating an Archive
  238.  
  239. Format:  ZOO -update archive[.ZOO] file ...
  240.  
  241.      This command is like -add, except that if a file being added is already
  242.      in the archive, it is added only if the copy being added is newer than
  243.      the copy already in the archive.  The -update commands adds all the
  244.      files that the -freshen command would add (below) and also adds any
  245.      files that are not already in the archive.
  246.  
  247.  
  248. 9.   Freshening an Archive
  249.  
  250. Format:  ZOO -freshen archive[.ZOO] file ...
  251.  
  252.      This command is like -add, except that a file is added only if it is
  253.      already in the archive, AND if the copy being added is newer than the
  254.      copy already in the archive.
  255.  
  256.      The -freshen command simply brings archived files up to date without
  257.      adding any files that weren't already in the archive.
  258.  
  259.  
  260. 10.  Adding comments to an Archive
  261.  
  262. Format:  ZOO -comment archive[.ZOO] file ...
  263.  
  264.      Zoo allows each archived file to have an optional attached comment.
  265.      Any comment attached to a file is listed when the Novice -list command
  266.      is given.  The -comment command allows comments to be attached,
  267.      removed, and updated.
  268.  
  269.      When invoked with the -comment command, Zoo goes through the specified
  270.      archive and for each matching file, shows you the comment (if any) and
  271.      allows you to type a replacement comment.  Your choices are:
  272.  
  273.      o    Type a carriage return alone to leave unchanged any attached
  274.           comment.
  275.      o    Type "/END" and carriage return to remove any comment attached to
  276.           the file.
  277.      o    Type a comment of up to 65,535 characters long.  Terminate it by
  278.           typing "/END" by itself on the last line.  The new comment will
  279.           replace any previous comment.
  280.  
  281.      For better formatting in listings, keep each line of the comment to 77
  282.      characters or less.  Since comments are not compressed, they should not
  283.      be excessively long.
  284.  
  285.      It is possible to create a file of comments with a text editor and give
  286.      it to Zoo as input using DOS's input redirection character "<".  In
  287.      this case, the comments in the file must be in exact sequence.  If this
  288.      input file has fewer comments than Zoo expects, comments for remaining
  289.      matching files will be left unchanged.
  290.  
  291.      If end-of-file is reached before all comments have been accounted for,
  292.      Zoo simply leaves all remaining files' comments unchanged.  End-of-file
  293.      can be caused by the user typing a control Z interactively or the
  294.      redirected input being smaller than Zoo expects.
  295.  
  296.      Examples:  "zoo -comment batch *.bat" shows any comment that may be
  297.      attached to each *.bat file in the archive "batch.zoo", allows you to
  298.      type a new comment.  Type as many lines as you wish, then type "/END"
  299.      by itself on a line to terminate the comment.  If, however, you want to
  300.      leave the original comment unchanged, just hit return.  You may type
  301.      control Z at any point to leave all remaining files' comments
  302.      unchanged.
  303.  
  304.      "zoo -comment qmodem *.doc *.00? <qcomment.txt" makes Zoo read new
  305.      comments from the file "qcomment.txt".  For each file matching *.doc
  306.      and *.00?, Zoo reads data from qcomment.txt and reacts exactly as with
  307.      interactive input:  an empty line (carriage return alone) in
  308.      "qcomment.txt" leaves the original comment unchanged;  "/END" by itself
  309.      removes the original comment;  any other text terminated by "/END" on a
  310.      separate line replaces a comment.  If "qcomment.txt" ends prematurely,
  311.      all remaining files have their comments left unchanged.
  312.  
  313.  
  314.  
  315.                               EXPERT COMMANDS
  316.  
  317. 1.   Adding Files to an Archive
  318.  
  319. Format:  ZOO {au}[cfMnPqu] archive[.ZOO] file ...
  320.  
  321. Command characters:
  322.  
  323.      a    Add files to archive.  If "a" is used by itself, each file is
  324.           added either in compressed or in uncompressed form, whichever is
  325.           smaller.  To add files without compressing them, use the "f"
  326.           (fast) modifier.  If a file with the same name as one being added
  327.           is already present in the archive, it is marked as deleted.  For
  328.           more information about deleted files, see the D (delete), U
  329.           (undelete), and P (pack) commands.
  330.  
  331.           If the filespecs given match duplicate filenames, each matching
  332.           filename is used only once.  This is true even if the duplicate
  333.           filenames refer to different files in different directories.
  334.  
  335.           Zoo will not add an archive to itself, nor add the archive's
  336.           backup to itself, nor add the temporary file {zoo}.@@@ to an
  337.           archive, nor add any other file that has the same name as these.
  338.  
  339.  
  340.      u    Update archive.  A specified file is added to the archive if
  341.           a copy of it is already in the archive and the copy being added is
  342.           newer than the copy already in the archive.
  343.  
  344. Modifiers:
  345.  
  346.      c    Add comments when adding files.  After each file is added, the
  347.           user is prompted for a comment.  If the file being added has
  348.           replaced a file already in the archive, any comment attached to
  349.           the replaced file is shown to the user and becomes attached to the
  350.           newly-added file unless the user changes it.  Responses are exac-
  351.           tly as for the Novice -comment command and the Expert c command:
  352.           hit carriage return to leave any previous comment unchanged;  type
  353.           "/END" to leave the file without any comment; or type a comment
  354.           and terminate with "/END" on a line by itself.
  355.  
  356.           If the user types control Z in response to a request for a com-
  357.           ment, Zoo will no longer ask for comments for any subsequent files
  358.           and their previous comments, if any, will remain unchanged.
  359.  
  360.           Note:  Since comments for replaced files become automatically
  361.           attached to corresponding newly-added files, the freshening of an
  362.           archive with the Novice -freshen command or the Expert au command
  363.           does not cause loss of comments.
  364.  
  365.      f    Do a fast add/update by not compressing files as they are added.
  366.  
  367.      M    Move files to archive.  This makes Zoo erase the original files
  368.           after they have been added to the archive.  Files are erased after
  369.           addition of files to the archive is complete, and after any
  370.           requested packing of the archive has been done, and only if Zoo
  371.           detected no errors.
  372.  
  373.      n    Add new files only.  A specified file is added only if it isn't
  374.           already in the archive.
  375.  
  376.      P    Pack archive after files have been added.  Normally, when Zoo adds
  377.           a file to an archive and if there was already a copy of the file
  378.           in the archive, the old copy is marked as being deleted.  This
  379.           does not actually remove the old copy;  it exists in the archive
  380.           and may be undeleted or extracted.  Packing the archive permanen-
  381.           tly removes all deleted files from it and recovers the space they
  382.           were using.
  383.  
  384.           The original archive is never changed during the packing process
  385.           except that it is renamed to have an extension of ".bak".  The
  386.           packed archive always appears in the current directory on the
  387.           current disk.
  388.  
  389.      q    Be quiet.  Normally Zoo lists the name of each file as it is
  390.           added.  The q modifier suppresses this.  Any error messages are
  391.           always shown.
  392.  
  393.      u    Update archive.  This has exactly the same effect as when used as
  394.           a command character (see above).
  395.  
  396. All combinations of the [cfMnPqu] modifiers are valid.  The combination of n
  397. and u together adds a file to the archive either if the file is not already
  398. in the archive, OR if the file is already in the archive but the archived
  399. copy is older than the copy being added.
  400.  
  401. Examples:
  402.  
  403.      "zoo a pascal *.*" adds all files in the current directory to the ar-
  404.           chive called "pascal.zoo".  If the archive does not already exist,
  405.           it is created.  Each file is added in compressed or uncompressed
  406.           form, whichever is smaller.
  407.  
  408.      "zoo aM pascal *.*" adds the same files and then deletes the original
  409.           unarchived files.
  410.  
  411.      "zoo af pascal *.*" adds the same files without any compression.
  412.  
  413.      "zoo aP pascal *.pas" adds all files matching "*.pas" to the archive
  414.           "pascal.zoo".  After all specified files have been added, Zoo packs
  415.           the archive if it finds any deleted files in it.
  416.  
  417.      "zoo aPc pascal *.pas" does exactly the same but also prompt the user
  418.           for a comment for each file after it is added.
  419.  
  420.      "zoo nfP a:/archives/cobol /cobol/" adds all files in the the /cobol
  421.           subdirectory on the current disk to the archive "cobol.zoo" in the
  422.           subdirectory "a:/archives", without doing compression.  After the
  423.           files have been added, if Zoo finds any deleted files in the
  424.           archive, it packs the archive.  Packing leaves the original
  425.           archive unchanged but renamed to have an extension of ".bak".  A
  426.           new packed copy of it appears in the current directory of the
  427.           current disk.
  428.  
  429.      "zoo uq silence silence.com / c:\bin\*.exe" adds the following
  430.           files to archive "silence.zoo":  (a) the file "silence.com";
  431.           (b) all files in the root directory;  (c) all files in the direc-
  432.           tory c:\bin that have the extension ".exe".  However, since the
  433.           command u was used, no file is added unless a copy of it is
  434.           already present in the archive.  Because of the q modifier, Zoo
  435.           does not list names of files as they are added.
  436.  
  437.  
  438. Extracting Files from an Archive
  439.  
  440. Novice:  zoo -extract archive [file] ...
  441. Expert:  zoo {ex}[dNoOpq] archive [file] ...
  442.  
  443.     The e and x commands are synonymous.  The specified files are 
  444. extracted from the archive.  If no file was
  445.      specified, all files are extracted from the archive.  All extracted
  446.      files go into the current directory.
  447.  
  448. The following modifiers are specific to the e and x commands:
  449.  
  450.      N    Do not save extracted data but report any errors encountred.  The
  451.      integrity of deleted files will not be checked unless the d modifier
  452.     is used.
  453.  
  454.      O    Overwrite files.  Normally, if a file being extracted would over-
  455.           write an already-existing file of the same name, Zoo asks you if
  456.           you really want to overwrite it.  You may answer the question with
  457.           "y", which means yes, overwrite; or "n", which means no, don't
  458.           overwrite; or "a", which means assume the answer is "y" for this
  459.           and all subsequent files.
  460.  
  461.           The O modifier makes Zoo assume that files may always be
  462.           overwritten.  It may not be combined with the N or p modifiers.
  463.  
  464.      o    The o modifier is equivalent to the O modifier if and only if it
  465.           is given at least twice.  It is otherwise ignored.
  466.  
  467.      p    Pipe extracted data to standard output.  
  468.  
  469.           Error messages are piped to standard output as well.  However, if a
  470.           bad CRC is detected, the bad CRC message is sent both to standard
  471.     error and and to the standard output.
  472.  
  473. 2.   Listing Files in an Archive
  474.  
  475. Format:  ZOO {lv}[dfv] archive[.ZOO] [file] ...
  476.  
  477. Command characters:
  478.  
  479.      l    List filenames in archive.  A list of all filenames in the archive
  480.           is presented, including the date and time of each file, its origi-
  481.           nal size, its current size as stored in the archive, and the per-
  482.           centage size decrease due to compression (called CF or compression
  483.           factor).  If no filespec is supplied, all files in the archive are
  484.           shown except deleted files.  Optionally, deleted files may be
  485.           listed;  see the description of the d modifier.
  486.  
  487.           If a file would need to be extracted with a version of Zoo higher
  488.           than the current version, Zoo displays the minimum version number
  489.           needed.
  490.  
  491.           A summary line displays a count of files listed, the total of all
  492.           original sizes and current sizes, and a net compression factor.
  493.           The actual size of an archive is always somewhat greater than the
  494.           total of the current sizes of files in it because of the directory
  495.           information that is also kept in the archive.
  496.  
  497.      v    Verbose list.  Equivalent to l but also shows any comment attached
  498.           to each file.  Version 2.00 of Zoo is expected to allow the user
  499.           to specify that only the first n lines of each comment be shown.
  500.  
  501. Modifiers:
  502.  
  503.      d    List deleted files also.  Normally, only files that have not been
  504.           deleted are shown.  The d modifier gives a combined display inclu-
  505.           ding both deleted and not deleted files.  Deleted files are marked
  506.           in the normal listing with "DEL".  Giving the the d modifier at
  507.           least twice (e.g., "zoo ldd archive") displays only deleted files.
  508.  
  509.      f    Fast listing.  The listing gives a multicolumn display of only the
  510.           filenames, followed by a count of deleted files.  Overrrides the v
  511.           command and the v modifier and prevents any comments from being
  512.           listed.
  513.  
  514.      v    Verbose list.  Equivalent to the v command.
  515.  
  516. The d modifiers may be separately combined with the f and v modifiers.  If
  517. the f and v modifiers are used together, f overrrides v.
  518.  
  519.  
  520. 3.   Deleting Files in an Archive
  521.  
  522. Format:  ZOO D[Pq1] archive[.ZOO] file ...
  523.  
  524. Command character:
  525.  
  526.      D    Delete files.  The specified files are marked as being deleted.
  527.           The file remains in the archive, however, and may be listed and
  528.           extracted.  The file does not permanently disappear until the
  529.           archive is packed (see the P modifier below and the P command
  530.           elsewhere).  If there are multiple instances of the file in the
  531.           archive, all are deleted;  the 1 modifier will prevent this.
  532.  
  533. Modifiers:
  534.  
  535.      P    Pack archive.  After the delete command has taken effect, and if
  536.           at least one file was deleted, Zoo proceeds to pack the archive.
  537.           Packing the archive permanently removes all deleted files from the
  538.           archive.  The packed archive always appears in the current
  539.           disk/directory and the original unpacked archive is renamed to
  540.           have an extension of ".bak".  (To not keep the backup copy, use
  541.           the P command described elsewhere.)  See also the P modifier to
  542.           the a command.
  543.  
  544.           As a safety feature, if the user deletes all files in an archive,
  545.           no packing is done and the deleted files may be recovered with the
  546.           U command.  To delete an archive entirely, use DOS's "del" or
  547.           "erase" command.
  548.  
  549.      q    Be quiet.  As files are deleted, their names are normally listed
  550.           on the screen.  The q modifier suppresses this information.  Error
  551.           messages are always shown.
  552.  
  553.      1    One file only.  This option (the digit one, not the letter ell)
  554.           makes Zoo delete at most one file, regardless of how many file-
  555.           names match the supplied filespecs.  This option allows the user
  556.           to selectively delete only the first of multiple occurrences of
  557.           the same file.  See also the 1 modifier to the U (undelete)
  558.           command.
  559.  
  560.  
  561. 4.   Undeleting Files in an Archive
  562.  
  563. Format:  ZOO U[q1] archive[.ZOO] file ...
  564.  
  565. Command character:
  566.  
  567.      U    Undelete files.  The specified files are marked as being no longer
  568.           deleted.  If there are multiple instances of the same deleted
  569.           file, all are undeleted;  the 1 modifier will prevent this.
  570.  
  571. Modifiers:
  572.  
  573.      q    Be quiet.  As files are undeleted, their names normally are listed
  574.           on the screen.  The q modifier suppresses this information.  Error
  575.           messages are always shown.
  576.  
  577.      1    One file only.  This option (the digit one, not the letter ell)
  578.           makes Zoo undelete at most one file.  Regardless of how many files
  579.           match the filespec(s) supplied, Zoo stops after undeleting one.
  580.  
  581.           Every time a file is added to an archive, any (one) previous
  582.           archived file having the same name is marked deleted.  If the same
  583.           file is repeatedly added to an archive, multiple deleted instances
  584.           of the file appear in the archive.  Any one of these may be
  585.           selectively extracted by careful and patient successive use of the
  586.           1 option combined with the U (undelete) and D (delete) commands.
  587.  
  588.  
  589. 5.   Adjusting the Timestamp of an Archive
  590.  
  591. Format:  ZOO T[q] archive[.ZOO]
  592.  
  593. Command character:
  594.  
  595.      T    Zoo normally tries to always keep time and date stamp of archives
  596.           to be the same as that of the newest file in the archive.  The T
  597.           command allows this to be done manually at any time.  An
  598.           informative message is given.
  599.  
  600.           The T command is useful if you have downloaded an archive via
  601.           telecommunications and you want to fix its timestamp to reflect
  602.           the age of the newest file in the archive.
  603.  
  604. Modifier:
  605.  
  606.      q    The q modifier suppresses the informative message.
  607.  
  608.  
  609. 6.   Packing an Archive
  610.  
  611. Format:  ZOO P[EPq] archive[.ZOO]
  612.  
  613. Command character:
  614.  
  615.      P    When Zoo adds a file to an archive, any previous instance of that
  616.           file in the archive is marked as deleted but remains in the ar-
  617.           chive.  The P command packs an archive and permanently removes all
  618.           deleted files from it.  Unless the user specifies otherwise, the
  619.           original archive is renamed to have the extension ".bak" and
  620.           remains otherwise unchanged.  The packed archive always appears on
  621.           the current disk/directory.
  622.  
  623.           Files appearing in the packed archive will retain any attached
  624.           comments.
  625.  
  626.           Floppy disk users who pack an archive that takes up more than half
  627.           the disk space should keep the original archive on a disk differ-
  628.           ent from the current disk.  The packed copy of the archive will
  629.           appear on the current disk.
  630.  
  631.           Zoo archives can pick up garbage at the end because of Xmodem file
  632.           transfers or due to being stored on certain computer systems that
  633.           round up file size to a power of two.  The P command will truncate
  634.           such an archive to its proper size.
  635.  
  636.           If packing an archive would result in nothing being left in the
  637.           archive, the packing leaves the archive unchanged.
  638.  
  639. Modifiers:
  640.  
  641.      E    When an archive is packed, the original copy of the archive is
  642.           normally not deleted but simply renamed to have the extension
  643.           ".bak".  For example, packing "apple.zoo" will give a new packed
  644.           archive called "apple.zoo", and a backup copy "apple.bak" that is
  645.           identical to the original archive.  The user may specify deletion
  646.           of the backup copy with the E modifier.
  647.  
  648.      P    Normally, if Zoo finds that a backup copy of an archive already
  649.           exists, it will refuse to pack the archive again, for that would
  650.           mean losing the old backup copy.  The P forces Zoo to proceed with
  651.           packing and delete the old backup copy.  For example, suppose both
  652.           "london.zoo" and "london.bak" exist.  Zoo will give an error
  653.           message in response to the command "zoo P london";  however, it
  654.           will pack the archive if the command "zoo PP london" is given.
  655.  
  656. When packing is done, the packed archive is initially created as a temporary
  657. file called "{zoo}.@@@".  After successful packing, this temporary file is
  658. renamed to the name of the original archive while the original archive is
  659. renamed to have an extension of ".bak".  If archive packing is aborted for
  660. any reason, the temporary file "{zoo}.@@@" is left in the directory.  This
  661. file also appears if, after packing is completed, Zoo is unable to rename
  662. this file to the name of the original archive.
  663.  
  664.  
  665.                          DISK SPACE CONSIDERATIONS
  666.  
  667. When Zoo is adding files to an archive, it gives an error message and exits
  668. as soon as disk space is too low to add the next specified file.
  669.  
  670. When Zoo is extracting files from an archive, however, it attempts to go on
  671. as long as it can.  If a file being extracted would exceed the space avail-
  672. able on disk, Zoo gives an error message but goes on to attempt to extract
  673. the next matching file.  It aborts entirely only if the disk becomes
  674. completely full.
  675.  
  676. Archive packing requires enough disk space to create a new copy of the
  677. archive.  The archive to be packed may be kept on a disk other than the
  678. current disk.  The packed archive appears on the current disk.
  679.  
  680.  
  681.                         INTERRUPTING WITH CONTROL C
  682.  
  683. Zoo may be interrupted with control C at any time.
  684.  
  685. Aborting operation with control C should not result in any damaged files.
  686. Rapid repeated hitting of control C could potentially leave files in an
  687. inconsistent state, although it has not been observed to happen.  (If you
  688. hit control C once and Zoo doesn't seem to notice, it probably missed it;
  689. it should be safe to wait about five seconds and try again.)
  690.  
  691. Because of the way MS-DOS handles user interrupts, it was found necessary,
  692. to preserve archive integrity, that Zoo disable break status (shown and set
  693. by the DOS "break" command).  Zoo 1.03N does not restore break status to its
  694. original value when it exits;  version 2.00 is expected to do so.
  695.  
  696.  
  697.                                 EXIT STATUS
  698.  
  699. Zoo returns an exit status of 0 if no errors occurred, and 1 if an error
  700. occurred or if no files matched when listing an archive.  This exit status
  701. may be tested in a batch file using the DOS "if errorlevel 1 goto ..."
  702. statement or from an executing parent process using DOS system call 4D
  703. hexadecimal.
  704.  
  705.  
  706.                              ARCHIVE INTEGRITY
  707.  
  708. When Zoo adds a file to an archive, it is always appended to the end of the
  709. archive, so a system crash should not normally affect the integrity of the
  710. archive.  If Zoo is interrupted while adding a file to an archive, the added
  711. file may not show up as being in the archive but some or all of its data
  712. will have been appended to the archive.  The P (pack) command will restore
  713. the archive to its original size.
  714.  
  715. When Zoo appends a file to an archive and a previous instance of the same
  716. file exists in the archive, the previous instance is marked deleted.  This
  717. involves a direct (random) access write to the archive.  In theory, if there
  718. were a system crash while the disk hardware was writing an updated directory
  719. entry in an archive, damage to the archive could occur.  In practice, this
  720. is likely to be very rare.
  721.  
  722. It is recommended that backup copies be always kept of valuable archives.
  723.  
  724.  
  725.                 CONVERSION FROM OTHER FORMATS TO ZOO FORMAT
  726.  
  727. The batch program ATOZ.BAT can help you convert a subdirectory full of files
  728. in another format (such as *.LBR and *.ARC) to Zoo format.  See ATOZ.DOC for
  729. instructions.  Due to differences between the batch languages of DOS 3.x and
  730. DOS 2.x, Atoz 1.00 works only with DOS 2.x.
  731.  
  732.  
  733.                            VERSION COMPATIBILITY
  734.  
  735. Zoo 1.10 can add information to an archive in the form of attached comments
  736. that earlier versions of Zoo cannot interpret.  Earlier versions of Zoo will
  737. list and extract files from version 1.10 archives and delete and undelete
  738. files in them.  But to avoid any loss of information, earlier versions of
  739. Zoo will refuse to modify version 1.10 archives in any other way.  Instead,
  740. the following message will be given:  "Version 1.10 of Zoo is needed to
  741. fully manipulate this archive."
  742.  
  743.  
  744.                                 VERSION 2.00
  745.  
  746. Version 2.00, when released, is expected to have the following additional
  747. features:
  748.  
  749. 1.   Filename listings will be alphabetized.
  750.  
  751. 2.   Source code in (fairly) generic *NIX-compatible C will be available.
  752.  
  753. 3.   A listing of files in the archive will show the first N lines of the
  754.      comment for each file, N being specified by the user.
  755.  
  756. 4.   Multiple instances of the same file in an archive will be properly
  757.      handled, each being identified by a version number.
  758.  
  759. 5.   It will be possible to execute archived programs.  Zoo will directly
  760.      extract the program into memory and execute it rather than creating a
  761.      temporary file first.
  762.  
  763.  
  764.                               ACKNOWLEDGMENTS
  765.  
  766. Zoo uses a dynamic Lempel-Ziv-Welch data compression procedure adapted from
  767. assembly routines written by Tom Pfau.
  768.  
  769. Ball State University and its Department of Computer Science provided me
  770. with a working environment, software, and other support.
  771.  
  772.  
  773.                                   FEEDBACK
  774.  
  775. Bug reports and other feedback should be directed to me at these electronic
  776. mail addresses.
  777.  
  778. GEnie:              DHESI
  779. People/Link:        OLS806
  780. Arpanet/CSnet:      dhesi%bsu@csnet-relay.ARPA
  781. UUCP:               ...!seismo!csnet-relay.ARPA!bsu!dhesi
  782.  
  783. Telephone calls are not encouraged but if absolutely necessary, try
  784. (317) 285-8641 during working hours, Eastern Standard Time.
  785.